//#include<memory>
//#include<thread>
//#include<functional>
//#include<iostream>
//class Base {
//public:
//	~Base() {
//		std::cout << "~Base" << std::endl;
//	}
//};
//class Test {
//public:
//	Base base;
//	std::thread* th;
//	Test():th(new std::thread(&Test::func,this)) {
//		//th->detach();
//	}
//	~Test() {
//		std::cout << "~Test" << std::endl;
//		th->detach();
//	}
//
//	void func() {
//		delete this;
//		std::cout << "func exit" << std::endl;
//	}
//};
//int main() {
//	Test* test=new Test();
//	while (true) {
//
//	}
//}